ga.core.individual.population
Class ArrayListPopulation<T extends IIndividual<T>>

java.lang.Object
  extended by ga.core.individual.population.ArrayListPopulation<T>
Type Parameters:
T - The generic type of individuals.
All Implemented Interfaces:
IPopulation<T>, java.lang.Iterable<T>

public class ArrayListPopulation<T extends IIndividual<T>>
extends java.lang.Object
implements IPopulation<T>

Population implementation that uses an ArrayList.

Since:
11.08.2012
Author:
Stephan Dreyer

Field Summary
private  boolean allowDuplicates
           
private  IFitnessEvaluator<T> evaluator
           
private  IIndividualFactory<T> factory
           
private  int initIndividualCount
           
private  IndividualList<T> pop
           
private  java.util.Random rnd
           
 
Constructor Summary
ArrayListPopulation(IIndividualFactory<T> factory, int initIndividualCount)
          Creates a new array list population.
ArrayListPopulation(IIndividualFactory<T> factory, int initIndividualCount, boolean allowDuplicates)
          Creates a new array list population.
 
Method Summary
 void addIndividual(T individual)
          Adds an individual to the population.
 void addIndividuals(IndividualList<T> individuals)
          Adds individuals to the population.
 void addIndividuals(T... individuals)
          Adds individuals to the population.
 void clear()
          Clears the population.
 boolean containsAny(IndividualList<T> list)
          Determine if one of the individuals is contained in this list.
 void evaluateAutomatic()
          Evaluates all individiduals using the automatic evaluator.
 T getEliteIndividual()
          Gets the elite individual, if elite strategy is used.
 int getEvaluatedIndividualCount()
          Get the number of individuals that has been evaluated.
 T getFittestIndividual()
          Gets the individual if the highest fitness.
 IndividualList<T> getIndividuals()
          Getter for a list representation of the population.
 int getInitIndividualCount()
          Get the number of initial individuals.
 T getRandomIndividualForEvaluation()
          Randomly selects an individual to evaluate.
 T getRandomIndividualForSelection()
          Randomly selects an individual to select.
 IndividualList<T> getUnevaluatedIndividuals()
          Get all individuals that has not been evaluated yet.
 T getUnfittestIndividual()
          Gets the individual if the lowest fitness.
 void initRandomly(IValidator<T> validator, GAContext context)
          Fill the population with random individuals.
 boolean isAllowDuplicates()
          Determines if duplicates are allowed.
 boolean isEmpty()
          Determines if the population is empty.
 java.util.Iterator<T> iterator()
           
 void setEvaluator(IFitnessEvaluator<T> evaluator)
          Sets the evaluator.
 void setInitIndividualCount(int individualCount)
          Set the number of initial individuals.
 int size()
          Returns the size of the population; the count of individuals.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pop

private final IndividualList<T extends IIndividual<T>> pop

factory

private final IIndividualFactory<T extends IIndividual<T>> factory

evaluator

private IFitnessEvaluator<T extends IIndividual<T>> evaluator

allowDuplicates

private boolean allowDuplicates

rnd

private final java.util.Random rnd

initIndividualCount

private int initIndividualCount
Constructor Detail

ArrayListPopulation

public ArrayListPopulation(IIndividualFactory<T> factory,
                           int initIndividualCount)
Creates a new array list population.

Parameters:
factory - The individual factory.
initIndividualCount - Init size of the population.
Since:
11.08.2012

ArrayListPopulation

public ArrayListPopulation(IIndividualFactory<T> factory,
                           int initIndividualCount,
                           boolean allowDuplicates)
Creates a new array list population.

Parameters:
factory - The individual factory.
initIndividualCount - Init size of the population.
allowDuplicates - Allow duplicate individuals if true but prevent them otherwise.
Since:
11.08.2012
Method Detail

setEvaluator

public void setEvaluator(IFitnessEvaluator<T> evaluator)
Description copied from interface: IPopulation
Sets the evaluator.

Specified by:
setEvaluator in interface IPopulation<T extends IIndividual<T>>
Parameters:
evaluator - The evaluator.

initRandomly

public void initRandomly(IValidator<T> validator,
                         GAContext context)
Description copied from interface: IPopulation
Fill the population with random individuals.

Specified by:
initRandomly in interface IPopulation<T extends IIndividual<T>>
Parameters:
validator - The validator or null.
context - The GA context.

getIndividuals

public IndividualList<T> getIndividuals()
Description copied from interface: IPopulation
Getter for a list representation of the population.

Specified by:
getIndividuals in interface IPopulation<T extends IIndividual<T>>
Returns:
The individuals as list.

addIndividuals

public void addIndividuals(T... individuals)
Description copied from interface: IPopulation
Adds individuals to the population.

Specified by:
addIndividuals in interface IPopulation<T extends IIndividual<T>>
Parameters:
individuals - Individuals to add.

addIndividual

public void addIndividual(T individual)
Description copied from interface: IPopulation
Adds an individual to the population.

Specified by:
addIndividual in interface IPopulation<T extends IIndividual<T>>
Parameters:
individual - Individual to add.

addIndividuals

public void addIndividuals(IndividualList<T> individuals)
Description copied from interface: IPopulation
Adds individuals to the population.

Specified by:
addIndividuals in interface IPopulation<T extends IIndividual<T>>
Parameters:
individuals - Individuals to add.

clear

public void clear()
Description copied from interface: IPopulation
Clears the population.

Specified by:
clear in interface IPopulation<T extends IIndividual<T>>

evaluateAutomatic

public void evaluateAutomatic()
Description copied from interface: IPopulation
Evaluates all individiduals using the automatic evaluator.

Specified by:
evaluateAutomatic in interface IPopulation<T extends IIndividual<T>>

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

size

public int size()
Description copied from interface: IPopulation
Returns the size of the population; the count of individuals.

Specified by:
size in interface IPopulation<T extends IIndividual<T>>
Returns:
Size.

getUnfittestIndividual

public T getUnfittestIndividual()
Description copied from interface: IPopulation
Gets the individual if the lowest fitness.

Specified by:
getUnfittestIndividual in interface IPopulation<T extends IIndividual<T>>
Returns:
The unfittest individual.

getFittestIndividual

public T getFittestIndividual()
Description copied from interface: IPopulation
Gets the individual if the highest fitness.

Specified by:
getFittestIndividual in interface IPopulation<T extends IIndividual<T>>
Returns:
The fittest individual.

getEliteIndividual

public T getEliteIndividual()
Description copied from interface: IPopulation
Gets the elite individual, if elite strategy is used.

Specified by:
getEliteIndividual in interface IPopulation<T extends IIndividual<T>>
Returns:
The elite or null.

getRandomIndividualForEvaluation

public T getRandomIndividualForEvaluation()
Description copied from interface: IPopulation
Randomly selects an individual to evaluate.

Specified by:
getRandomIndividualForEvaluation in interface IPopulation<T extends IIndividual<T>>
Returns:
Random individual to evaluate.

getRandomIndividualForSelection

public T getRandomIndividualForSelection()
Description copied from interface: IPopulation
Randomly selects an individual to select.

Specified by:
getRandomIndividualForSelection in interface IPopulation<T extends IIndividual<T>>
Returns:
Random individual to select.

getUnevaluatedIndividuals

public IndividualList<T> getUnevaluatedIndividuals()
Description copied from interface: IPopulation
Get all individuals that has not been evaluated yet.

Specified by:
getUnevaluatedIndividuals in interface IPopulation<T extends IIndividual<T>>
Returns:
List of unevaluated individuals.

isEmpty

public boolean isEmpty()
Description copied from interface: IPopulation
Determines if the population is empty.

Specified by:
isEmpty in interface IPopulation<T extends IIndividual<T>>
Returns:
true if the population is empty.

isAllowDuplicates

public boolean isAllowDuplicates()
Description copied from interface: IPopulation
Determines if duplicates are allowed.

Specified by:
isAllowDuplicates in interface IPopulation<T extends IIndividual<T>>
Returns:
true if duplicates are allowed.

getEvaluatedIndividualCount

public int getEvaluatedIndividualCount()
Description copied from interface: IPopulation
Get the number of individuals that has been evaluated.

Specified by:
getEvaluatedIndividualCount in interface IPopulation<T extends IIndividual<T>>
Returns:
Number of evaluated individuals.

containsAny

public boolean containsAny(IndividualList<T> list)
Description copied from interface: IPopulation
Determine if one of the individuals is contained in this list.

Specified by:
containsAny in interface IPopulation<T extends IIndividual<T>>
Parameters:
list - Individuals to look for.
Returns:
true if this list contains any individual of the other one.

iterator

public java.util.Iterator<T> iterator()
Specified by:
iterator in interface IPopulation<T extends IIndividual<T>>
Specified by:
iterator in interface java.lang.Iterable<T extends IIndividual<T>>

getInitIndividualCount

public int getInitIndividualCount()
Description copied from interface: IPopulation
Get the number of initial individuals.

Specified by:
getInitIndividualCount in interface IPopulation<T extends IIndividual<T>>
Returns:
Number of init individuals.

setInitIndividualCount

public void setInitIndividualCount(int individualCount)
Description copied from interface: IPopulation
Set the number of initial individuals.

Specified by:
setInitIndividualCount in interface IPopulation<T extends IIndividual<T>>
Parameters:
individualCount - Number of init individuals.